#ifndef _MYW25Q64_H
#define _MYW25Q64_H

#include "gd32e230.h"                   // Device header
#include "MySPI.h"

#include "MyW25Q64.h"


//W25Q64硬件控制区
#define W25Q64_RCU_GPIOX 			RCU_GPIOA																					//软件片选引脚时钟
#define W25Q64_GPIOX 					GPIOA																							//软件片选引脚分组
#define W25Q64_GPIO_PIN 			GPIO_PIN_4																				//软件片选引脚
#define W25Q64_DISABLE()			gpio_bit_set(W25Q64_GPIOX,W25Q64_GPIO_PIN)				//拉高片选，释放W25Q64
#define W25Q64_ENABLE()				gpio_bit_reset(W25Q64_GPIOX,W25Q64_GPIO_PIN)			//拉低片选，选中W25Q64


//初始化W25164
//无参
//无返回值
void MyW25Q64_Init(void);


//等待W25Q64上一次操作完成
//无参
//无返回值
void MyW25Q64_WaitBusy(void);

//写使能W25Q64
//无参
//无返回值
void MyW25Q64_WriteEnable(void);

//写失能W25Q64
//无参
//无返回值
void MyW25Q64_WriteDisable(void);

//擦除64K内容
//参数：xblock  要擦除的块
//无返回值
void MyW25Q64_Erase64K(uint8_t xblock);

//按页写入（一页256字节）
//参数：wbuffer  要写入的数组
//参数：xpage  	 要写入的页
//无返回值
void MyW25Q64_PageWrite(uint8_t* wbuffer,uint16_t xpage);

//按页写入（一页256字节）
//参数：wbuffer  要写入的数组
//参数：xpage  	 要写入的页
//无返回值
void MyW25Q64_Read(uint8_t* rbuffer,uint32_t addr,uint32_t datalen);





#endif
